Sonar rendering systems and associated methods

ABSTRACT

Sonar rendering systems and methods are described herein. One example is an apparatus that includes a transducer element, position sensing circuitry, processing circuitry, and a display device. The processing circuitry may be configured to receive raw sonar data and positioning data, convert the raw sonar data into range cell data based at least on amplitudes of the return echoes, make a location-based association between the raw sonar data and the positioning data, plot the range cell data based on respective positions derived from the positioning data and rotate the range cell data based on a direction of movement of the watercraft to generate adjusted range cell data. The processing circuitry may be further configured to convert the adjusted range cell data into sonar image data, and cause the display device to render the sonar image data with a presentation of a geographic map.

FIELD OF THE INVENTION

Embodiments of the present invention relate generally to sonar systems,and more particularly, to managing and rendering sonar data.

BACKGROUND OF THE INVENTION

Sonar has long been used to detect waterborne or underwater objects.Sonar devices may be used to determine depth and bottom topography,detect fish or other waterborne objects, locate wreckage, etc. In thisregard, due to the extreme limits on underwater visibility, sonar istypically the most accurate way to locate objects underwater. Devicessuch as transducer elements, or simply transducers, have been developedto produce sound or vibrations at a particular frequency that istransmitted into and through the water. Echo returns from thetransmitted sound reflected off an object are received, either by thesame transducers or by separate receiver elements and are converted intoan electrical signal. These electrical signals can be analyzed andinterpreted to obtain information about underwater structures.

Transducer technology and sonar techniques continue to evolve, such thatinformation about larger underwater areas is being captured morerapidly. Innovations in both downscan and sidescan sonar technology havecontributed to this increase in the amount of data being collected fromthe transducers and transducer arrays. Due to this availability of largeamounts of detailed information, innovative ways to present this datacan be considered and implemented.

Traditionally, sonar data has been rendered relative to the source ofthe sonar beam (i.e., the transducers). Since the only constantreference for the sonar data is this beam origin, renderings of sonardata can be difficult to interpret. For example, consider a transducerthat is affixed to a watercraft. The transducer may continuously receivereturn echoes describing the underwater surroundings of the watercraft.However, by simply considering the content of the raw sonar dataretrieved from a transducer, the physical movement of the watercraft isunaccounted for in the rendering of the data. Based on the raw sonardata alone, it can be unclear whether the watercraft was traveling in astraight line (e.g., due north) or if the watercraft is circling thesame location. Because the only reference is the transducer or thewatercraft itself, the context in which the raw sonar data is beingprovided can be unclear and confusing, particularly for a novice tosonar technology.

As such, it may be desirable to manage and render raw sonar data indifferent contexts in order to increase the interpretability of the datato a user.

BRIEF SUMMARY OF SOME EXAMPLE EMBODIMENTS

Example embodiments of various sonar rendering systems and methods aredescribed herein. One example embodiment is an apparatus comprising atransducer assembly, position sensing circuitry, processing circuitry,and a display device. The transducer assembly may be configured to emita sonar beam, receive return echoes of the sonar beam, and convert thereturn echoes into raw sonar data. The transducer assembly may also beconfigured to be affixed to a watercraft. The position sensing circuitrymay be configured to determine positioning data. The positioning datamay be indicative of a position of the watercraft. The processingcircuitry may be configured to receive the raw sonar data and thepositioning data, convert the raw sonar data into range cell data basedat least on amplitudes of the return echoes, make a location-basedassociation between the raw sonar data and the positioning data, plotthe range cell data based on respective positions derived from thepositioning data and rotate the range cell data based on a direction ofmovement of the watercraft to generate adjusted range cell data. Theadjusted range cell data may then be converted into sonar image data.According to some embodiments, such as those where the transducerelement is operating as a sidescan transducer, the range cell data maybe rotated based on the direction of movement of the watercraft suchthat the range cell data is rotated to extend in a direction that issubstantially perpendicular to the direction of movement of thewatercraft. The display device may be configured to render the sonarimage data with a presentation of a geographic map.

Various example method embodiments are also described. One examplemethod comprises emitting a sonar beam by a transducer assembly,receiving return echoes of the sonar beam, and converting the returnechoes into raw sonar data. The transducer assembly may be configured tobe affixed to a watercraft. The example method may also includedetermining positioning data by position sensing circuitry, where thepositioning data is indicative of a position of the watercraft. Theexample method may also comprise receiving the raw sonar data and thepositioning data by processing circuitry, converting the raw sonar datainto range cell data based at least on amplitudes of the return echoes,make a location-based association between the raw sonar data and thepositioning data, plotting the range cell data based on respectivepositions derived from the positioning data and rotating the range celldata based on a direction of movement of the watercraft to generateadjusted range cell data, converting the adjusted range cell data intosonar image data, and rendering, by a display device, the sonar imagedata with a presentation of a geographic map.

Other example embodiments may include computer-readable media havingcomputer-program instructions stored thereon. One example embodiment isa non-transitory computer-readable medium comprised of at least onememory device having computer program instructions stored thereon. Thecomputer program instructions may be configured to, when executed byprocessing circuitry, to cause an apparatus to perform variousfunctionalities. Those functionalities may include emitting a sonar beamby a transducer element, receiving return echoes of the sonar beam, andconverting the return echoes into raw sonar data. The transducer elementmay be configured to be affixed to a watercraft. The computer programinstructions may also be configured to cause the apparatus to determinepositioning data by position sensing circuitry. The positioning data maybe indicative of a position of the watercraft. The functionalitiesperformed by the apparatus due to the execution of the computer programinstructions may also include receiving the raw sonar data and thepositioning data by processing circuitry, converting the raw sonar datainto range cell data based at least on amplitudes of the return echoes,make a location-based association between the raw sonar data and thepositioning data, plotting the range cell data based on respectivepositions derived from the positioning data and rotating the range celldata based on a direction of movement of the watercraft to generateadjusted range cell data, converting the adjusted range cell data intosonar image data, and rendering, by a display device, the sonar imagedata with a presentation of a geographic map.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWING(S)

Having thus described the some example embodiments of the invention ingeneral terms, reference will now be made to the accompanying drawings,which are not necessarily drawn to scale, and wherein:

FIG. 1 is a block diagram of a sonar system according to some exampleembodiments;

FIG. 2 is a diagram illustrating an example beam pattern for a sonarsystem according to some example embodiments;

FIG. 3 is a block diagram of a more specific example embodiment of asonar system according to some example embodiments;

FIG. 4 is a waterfall view image generated by a sidescan sonar systemaccording to some example embodiments;

FIG. 5 is an illustration of separated sonar columns of a waterfall viewimage generated by a sidescan sonar system according to some exampleembodiments;

FIG. 6 is a waterfall view image generated by a sidescan sonar systemduring a watercraft turn according to some example embodiments;

FIG. 7 a illustrates a series of water columns of range cell data thathave been plotted and rotated according to some example embodiments;

FIG. 7 b illustrates a series of operations for removing a water columnfrom a sonar column according to some example embodiments;

FIG. 8 illustrates operations for generating a Live Mode composite mapaccording to some example embodiments;

FIG. 9 illustrates an example extent trail composite map according tosome example embodiments;

FIG. 10 illustrates an example composite map including depth soundingindicators according to some example embodiments;

FIG. 11 illustrates an example Saved Mode composite map according tosome example embodiments;

FIG. 12 illustrates an example grid system for sectionalizing range celldata into tiles according to some example embodiments;

FIG. 13 illustrates an example tile and defining characteristicsaccording to some example embodiments;

FIG. 14 illustrates an example data structure resolution layerarrangement according to some example embodiments;

FIG. 15. is a flowchart of example operations for converting range celldata in the Saved Mode data structure according to some exampleembodiments; and

FIG. 16 is a flowchart of example operations for rendering data in theSaved Mode according to some example embodiments.

DETAILED DESCRIPTION OF THE INVENTION

Exemplary embodiments of the present invention now will be describedmore fully hereinafter with reference to the accompanying drawings, inwhich some, but not all embodiments of the invention are shown. Indeed,the invention may be embodied in many different forms and should not beconstrued as limited to the exemplary embodiments set forth herein;rather, these embodiments are provided so that this disclosure willsatisfy applicable legal requirements. Like reference numerals refer tolike elements throughout.

FIG. 1 illustrates a block diagram of an example sonar system 100according to some example embodiments of the present invention. Sonarsystem 100 may include at least one transducer element 105, positionsensing circuitry 110, processing circuitry 115, at least one memorydevice 120, a display device 125, and a sonar map module 130. The sonarsystem 100 may, in some example embodiments, be configured forinstallation on a watercraft, which may be a surface-going vessel assmall as a canoe or fishing boat or as large as an ocean liner or acruise ship or may be a submersible such as a tow fish, remotelyoperated vehicle (ROV), autonomous underwater vehicle (AUV), or thelike. The sonar system 100 may be configured for installation on anytype of device or apparatus that may benefit from the use of sonartechnology.

The transducer element 105 may include a piezoelectric material in theform of a crystal that may be constructed to produce vibrations (e.g.,sound) at a particular frequency for transmission through water. Thevibrations generated by the transducer element 105 may take the form ofa sonar beam that is emitted from the transducer element 105. Based onthe architecture and mounting angle of the transducer element 105, thesonar beam may define an underwater volume that is affected by the beam.Transducer element 105 may be configured to generate any type of sonarbeam, such as, for example, a conical beam, a fan-shaped beam, or thelike, and may be mounted such that the beam is directed in any desireddirection.

In some example embodiments, the transducer element 105 may beconstructed and mounted such that the transducer element 105 operates asa sidescan transducer element. As its name implies, a sidescantransducer element may be directed to look to a side of a vessel, asopposed to being aimed directly below a vessel (i.e., a downscantransducer element). A side scan transducer may generate a somewhatplanar beam pattern that is relatively narrow in beamwidth in ahorizontal direction parallel to the keel of a vessel and is relativelywide in beamwidth in a vertical direction perpendicular to the keel ofthe vessel.

Regardless of the architecture and mounting angle, the transducerelement 105 may also be configured to receive echo returns from thegenerated sonar beam. However, in some example embodiments, atransmitting transducer may be used to emit the sonar beam and areceiving transducer may be used to receive the echo returns. Thetransducer element 105 may be configured to convert the echo returnsinto electrical signals, also referred to as raw sonar data, that may beanalyzed. Based on the time difference from when the sonar beam wasemitted to when an echo return was received, information about theseafloor and underwater structures can be determined. As such, thetransducer element 105 may be controlled by processing circuitry 115 totrigger the transducer element 105 (e.g., at a particular scan rate) toemit a sonar beam and receive the electrical signals indicative of echoreturns to be analyzed and interpreted.

According to some example embodiments, the transducer element 105 may beone element in a transducer array that produces multiple sonar beams.FIG. 2 illustrates an example multi-beam pattern that may be used inaccordance with some example embodiments. The transducer array 205 maybe affixed to the watercraft 200 to produce the multi-beam pattern. Thetransducer array may include, for example, three transducer elements. Afirst transducer element may be configured to generate the conicaldownscan beam 210. A second transducer element may be configured togenerate a rectangular port sidescan beam 215, and a third transducerelement may be configured to generate a rectangular starboard sidescanbeam 220. According to some example embodiments, the downscan transducerneed not be included in the array or the echo returns from the downscanbeam need not be included in the raw sonar data that is used forunderwater imaging as described in the following.

The sonar system 100 may also include position sensing circuitry 110that is configured to determine a current location of an object that theposition sensing circuitry is affixed to. The current location may beincluded as, for example, coordinates (e.g., longitude and latitude), inpositioning data generated by the position sensing circuitry. In anexample embodiment where the position sensing circuitry 110 is affixedto a watercraft, the position sensing circuitry may indicate thelocation of the watercraft. In this regard, the position sensingcircuitry 110 may include an antenna and associated processorsconfigured to receive global positioning system (GPS) signals anddetermine a current location. The positioning data may therefore beprovided in the form of GPS coordinates that can be used to geo-tagvarious types of information. Additionally, or alternatively, theposition sensing circuitry 110 may be configured to determine a locationthrough the reception of WiFi signals, cellular telephone systemsignals, or the like. The position sensing circuitry 110 may interfacewith the processing circuitry 115 to provide positioning data to theprocessing circuitry 115. According to some example embodiments, theposition sensing circuitry 110 may also determine a direction and speedof movement, and provide the direction and speed of movement in thepositioning data provided to the processing circuitry 115.Alternatively, the processing circuitry 115 may be configured todetermine the direction and speed of movement based on historicaltime-stamped location information received from the position sensingcircuitry 110.

The processing circuitry 115 may be configured to receive raw sonar datafrom the transducer element for conversion and analysis. In this regard,the processing circuitry 115 may be configured to process the raw sonardata for rendering by the display device 125 and/or storage in thememory device 120. Further, the processing circuitry 115 may beconfigured to receive positioning data from the position sensingcircuitry and associate the raw sonar data to the positioning data todetermine the location and time at which the raw sonar data wasacquired. In this regard, the processing circuitry 115 may be configuredto make a location-based and/or temporal association between the rawsonar data and the positioning data. Additionally, in some exampleembodiments, the processing circuitry 115 may be configured to controlthe operation of the transducer element 105 to cause the transducerelement 105 to generate a sonar beam at a particular scan rate. For eachscan the transducer element 105 may generate, and upon generationtransmit to the processing circuitry 115, an incremental set of rawsonar data for the scan. According to some example embodiments, the scanrate may be fixed or the scan rate may be dynamically modified based on,for example, the current speed of the watercraft. The processingcircuitry 115 may also be configured to receive each incremental set ofraw sonar data from the transducer element 105 and, in response toreceiving the incremental set of raw sonar data, process the data togenerate a sonar column of range cell data. The processing circuitry 115may also be configured to generate sonar image data for rendering upongenerating the range cell data.

The processing circuitry 115 may include one or more hardware processors(e.g., microprocessors) that are configured to retrieve instructionsfrom a memory device (e.g., memory device 120) for execution by theprocessors. In this regard, the processing circuitry 115 may include ageneral purpose microprocessor that is converted into a particularmachine through the execution of computer program instructions. Some ofthe various example embodiments described herein may be implementedthrough the execution of computer program instructions stored on thememory device 120 by the processing circuitry 115. The functionalitydescribed with respect to the sonar map module 130, FIGS. 4-16, andotherwise described herein may be implemented in this manner.Additionally or alternatively, the processing circuitry 115 may includehardware devices, such as application specific integrated circuits(ASICs) and field programmable gate arrays (FPGAs) that are hardwareconfigured to implement functionality. In this regard, the functionalitydescribed with respect to the sonar map module 130, FIGS. 4-16 andotherwise described herein may be implemented in this manner.

The processing circuitry 115 may be centralized in a single housing(e.g., in a multi-function display (MFD) device) or the processingcircuitry may be distributed. For example, some processing of the rawsonar data may be performed by a sonar coprocessor that may be housedwith the transducer element 105, in a separate housing, or in a commonhousing with other processing circuitry.

The memory device 120 may comprise one or more data storage andretrieval devices that are configured to store instructions or data andprovide the instructions or data when requested. The memory device 120may be a non-transitory computer-readable medium. The memory device 120may include volatile and/or non-volatile memory devices. Such memorydevices may include on-board or on-chip memories, removable memorycards, hard drives, and the like. As mentioned above, the memory device120 may be configured to store computer program instructions forexecution by a processing device included in the processing circuitry115. As further described below, the memory device 120 may be a datestorage device that stores raw sonar data and transformed versions ofthe raw sonar data, such as range cell data and Saved Mode datastructures.

The display device 125 may be any type of visual output device thatrenders information for consideration by a user. In this regard, thedisplay device may include a display panel such as a liquid crystaldisplay panel. While in some example embodiments, the display device maybe simply a display panel that is controlled by the processing circuitry115, in other example embodiments, the display device 125 may includesome or all of the processing circuitry 115. For example, the processingcircuitry external to the display device 125 may be configured toconvert the raw sonar into range cell data (described further below) andthe display device 125 may include processing circuitry configured toconvert the range cell data into sonar image data for rendering on thedisplay panel. As such, the display device 125 may include one or morehardware configured processors or processors that may be configuredthrough the execution of computer program instructions.

In some example embodiments, the display device 125 may also include auser input interface for receiving user inputs and selections that maybe passed to the processing circuitry 115 to trigger variousfunctionalities. In this regard, the display device 125 may be a touchscreen display, may include dynamically configurable softkeys, and/ormay include a keypad. Further, according to various example embodiments,the display device may be a multi-function display (MFD) or may be acomponent of the MDF.

Although not depicted in FIG. 1, the sonar system 100 may also include awired or wireless communications interface. The communications interfacemay permit the transmission and receipt of data via wired serial orparallel communications ports or via wireless links to a WiFi network, acellular network, or the like.

According to various example embodiments, the sonar system 100 may beconfigured to perform various functionalities as further described belowthrough the configuration of the sonar map module 130. In some exampleembodiments, the sonar map module 130 may take the form of computerexecutable instructions stored in the memory device 120, that, whenexecuted, cause the processing circuitry 115 and the sonar system 100 toperform the functionality described with respect to FIGS. 4-16 and asotherwise described herein. Additionally or alternatively, some or allof the sonar map module 130 may take the form of a hardwareconfiguration of the processing circuitry 115 as, for example,functionality of an ASIC or FPGA to configure the processing circuitry115 to perform some or all of the functionality described with respectto FIGS. 4-16 and as otherwise described herein.

FIG. 3 illustrates a block diagram of a more specific example sonarsystem 300 in accordance with some example embodiments of the presentinvention, wherein the processing circuitry 115 is more distributed. Inthis regard, the sonar system 300 may also be configured to perform thefunctionality of the sonar map module 130, however, with a more specificsystem architecture. The sonar system 300 includes a transducer 305, asonar coprocessor 310, a multi-function display unit 315 and a GPS unit345. The multi-function display unit 315 may be configured to implementthe functionality described with respect to FIGS. 4-16 and as otherwisedescribed herein via the sonar map module 320 which may be embodied ascomputer program instructions stored on a non-transitorycomputer-readable medium, processing circuitry configured through theexecution of the computer program instructions, or through the hardwareconfiguration of an ASIC, FPGA or the like. The sonar map module 320 mayinclude a Live Mode Module 325 for generating Live Mode composite mapsand a Saved Mode module for generating and rendering a Saved Mode datastructure in a particular data format, such as a Structure Map File(SMF) 335. In this regard, the sonar map module 320 may be similar orthe same as sonar map module 130 with respect to the associatedfunctionality.

As described above, similar to transducer element 105, transducer 305may be configured to generate raw sonar data. In the sonar system 300,the raw sonar data may be provided to the sonar coprocessor 310 forinitial processing. As further described below, the raw sonar data maybe converted into range cell data and provided to the sonar data module340. The sonar data module 340 may configured to make a location-basedassociation between range cell data received from the sonar coprocessor310 and positioning data received from the GPS unit 345. Thetime-and-position-stamped range cell data may then be processed by thesonar map module 320 and provided together with a chart 350 (or map) todisplay 355 for rendering in the various manners described herein.

The following describes various example embodiments for transforming andrendering raw sonar data in different contexts, which may be performedby the sonar systems 200 and 300, through the configuration of the sonarmap modules 130 and 320, respectively. It is understood that the sonarsystems 200 and 300 are merely examples of computing systems that may beconfigured to perform the various functionalities. For example,computing systems that are not configured for mounting to a watercraftand do not have interfaces to sonar transducer elements may beconfigured to perform at least some of the functionality describedherein. Additionally, it will be apparent to one of skill in the artthat the following described functionalities may be performed togetherin a unified manner or as separate, independent functions whereappropriate.

FIG. 4 illustrates a waterfall view image of sonar data according tosome example embodiments that may be rendered on a display, such asdisplay device 125. The waterfall view 400 illustrates the rending ofsonar image data derived from raw sonar data provided by port andstarboard sidescan transducers over a period of time as the watercrafttravels. The right half of the waterfall view 400 is a representation ofthe raw sonar data generated by the starboard sidescan transducer andthe left half of the waterfall view 400 is a representation of the rawsonar data generated by the port sidescan transducer as a watercraftmoves through a body of water. The image is referred to as a waterfallview because new sonar data is rendered across the top of the view asold sonar data falls off the bottom of the view. As such, movement ofthe watercraft is from the bottom to top of the image presentation andthe image ratchets downward with the rendering of each scan performed bythe transducers.

To generate the waterfall view 400 and the data used to render thewaterfall view 400, one or more data conversions may take place. Atransducer element may collect raw sonar data which may be transferredto processing circuitry (e.g., a sonar coprocessor). The processingcircuitry may be configured to convert the raw sonar data into anintermediate form, referred to as range cells or range cell data.According to some example embodiments, the conversion to range cell datais not a conversion to color palette pixel values. Rather, the rangecell data maintains a relative native format that permits subsequentchanges in contrast that would not be capable if a conversion to colorpalette pixel values were performed at this point. According to someexample embodiments, each range cell may be a single of byte of data.

According to various example embodiments, a range cell may be a form ofthe sonar data that indicates an amplitude of an echo return at aparticular depth (or distance from the transducer). In this regard, therange cell data may include an indication of the amplitude of the echoreturns at particular timings for the echo returns. For example, if asonar column is broken up into individual elements (e.g., echo returns),each element may define a respective range cell. The range of valuesthat a range cell may be assigned can be implementation dependent. Forexample, a range for range cell values may be 0 to 7, 0 to 255, or thelike. If a range of 0 to 255 is used, a value of 0 may represent noreturn of echo data, while a value of 255 may represent the strongestreturn of echo data.

When rendering the sonar data, the range cell values may be convertedinto pixel values. For example, the pixels may be formatted in a 32-bitARGB (Alpha, Red, Green, Blue) pixel format, where each segment of thepixel may be 8 bits. For explanation purposes, consider the alphaportion of each pixel to be 255, indicating no transparency. Based on anexample range cell that has a value of 142 on a 0 to 255 range, a pixelin a first color palette may be derived that has a value of (255, 0, 83,189) (i.e., mostly blue with a little green). If an alternative colorpalette is used, that same range cell value of 142 may be used to derivea pixel having a value of (255, 137, 115, 63), which is brownish inappearance.

The use of the range cell value allows different color palettes to beimplemented, where changes in contrast do not affect the informationprovided in the resultant pixel values. If, on the other hand, a pixelvalue-to-pixel value direct conversion between color palettes isperformed, the contrast setting may have an impact on the conversion. Toperform a pixel value-to-pixel value direct conversion, a conversiontable associating each pixel value in a first color palette to eachpixel value in a second color palette may be used. For example, a bluecolor palette pixel value of (255, 0, 83, 189) may be converted to (255,137, 115, 63) when the brown palette is selected based on the entries ina table. As such, in some example embodiments, conversion tables forconverting between each of the palettes may be generated. In contrast,the use of range cell values to derive pixel values can avoid the needto generate and store these conversion tables.

Further, the use of range cell values can avoid issues that can arisefrom dependence on a contrast setting. For example, consider a worstcase scenario where the contrast is set to an undesirable setting. Thecontrast setting may cause the pixel value to be all white—(255, 255,255, 255). Accordingly, if pixel values are stored, for example to aSaved Mode data structure, after a contrast setting effects the pixelvalues, information that could be derived from the range cell values maybe lost. Therefore, storing and using the range cell values, can avoidthis loss of information introduced by the contrast setting.

A collection of range cells captured during a scan may be referred to asa sonar column. Additionally, a sonar column may include range cell dataderived from scans taken by multiple transducers (e.g., two sidescantransducers). According to some example embodiments, each sonar columnof range cell data may be processed to generate sonar image data (e.g.,plotted color palette pixel values), which may be rendered as a visualrepresentation of the sonar column on a display. When applied in thewaterfall view, image data representative of a sonar column may be addedto the top of the view as a row. To convert the range cell data to imagedata and render the representation of the sonar column, values in therange cell data may be converted to color palette pixel values, and eachof the pixel values may be rendered on a display panel. The newestrepresentation of a sonar column may be rendered at the top of thewaterfall view 400 (i.e., rendered horizontally despite being referredto as columns), and existing historical data may be moved downward oroff the view.

Each sonar column may be associated with a scan or beam emissionperformed by the transducer or a transducer array at a particular time.Based on a scan rate that may be controlled by processing circuitry of asonar system, new sonar columns may be generated and prepared forrendering. Each sonar column may also be associated, by the processingcircuitry, to a geo-location at the sonar column's center point. Thegeo-location of the sonar column may be determined based on the locationof the watercraft at the time when the sonar column data was captured asindicated by the position sensing circuitry. The sonar column may alsobe time-stamped or given a sequence number that may be used to determinethe ordering of the sonar columns. Similarly, the range cell data may beplotted and time-stamped. FIG. 5 depicts a waterfall view 500 with anumber of separated renderings of sonar columns for illustrationpurposes, including a rendering of sonar column 505 with a center point510. Each sonar column may also be characterized by a width 515, whichmay be derived from the outer boundary of the beam pattern of thetransducers. According to some example embodiments, the width of thesonar column may be determined based on the center point and thedirection of movement. As can be seen in FIG. 5, with each new scanperformed by the transducers, a new rendering of a sonar column may beadded and an oldest column may be removed from the view.

Referring back to FIG. 4, the waterfall view 400 also depicts a watercolumn 405. The water column may be representative of a distance to theseafloor or bottom of a body of water. However, since sidescantransducers are not necessarily aimed directly downward, but rather atan acute angle, the distances in the waterfall view may not be accurate.Therefore, to determine an accurate distance to the seafloor based onsidescan data, some correction may be needed. Since few, if any, echoesshould return before the sonar beam reaches the seafloor, regardless ofhow the transducer is aimed, a region having a substantial absence ofechoes may be formed. In the waterfall view of FIG. 4, darker pixels areindicative of fewer echo returns, and therefore this region before thebeam reaches the seafloor is dark due to the relative absence of echoreturns. The water column 405 includes respective regions for each sidescan transducer. Since this portion of the rendering depicts the waterbetween the transducer and the seafloor, it does not provide informationabout the seafloor itself and therefore this region may not useful forgeo-mapping purposes. Further, the presence of the water columnintroduces a vertical component to the two-dimensional rending of thesonar data, which can have an impact when rendering the sonar data on ageographic map.

Additionally, the only constant reference in the rendering of thewaterfall view 400 is the location of the watercraft (or rather thelocation of the transducers). In other words, the rendering in thewaterfall view itself is not geo-referenced, and therefore the waterfallview rendering could not be directly placed on a map. Since thewatercraft is the only reference, movement of the watercraft is notapparent from the waterfall view. The direction and the speed of thewatercraft (other than in a forward direction) are not considered whenrendering the waterfall view. Regardless of whether the watercraft isheaded on a straight bearing or the watercraft is turning in circles,both would appear on the waterfall view as movement in a straight linefrom the bottom of the view to the top of the view.

This aspect of the waterfall view is illustrated in the waterfall view600 of FIG. 6. Although it is not intuitive from the image in the waterfall view 600, the watercraft was in a turn when the sonar datarepresented in the image was collected. However, it can be seen inwaterfall view 600 how a structure on the seafloor may be distortedduring a turn. The structure 610 may actually be a linear shallowing ofthe seafloor. However, in the waterfall view 600, the structure 610appears to a have a curvature 605. This curvature can be the result ofthe watercraft turning and thereby distorting the image of the seafloor,relative to, for example, a geo-coordinate system. Accordingly, theseaspects of the waterfall view representation of the sonar data may becompensated for prior to rendering the same sonar data on a map, wherethe reference is geo-coordinate-based.

According to some example embodiments, a Live Mode rendering of thesonar data on a map may be implemented. In the Live Mode, the sonar datais presented on a map, as the data is being captured and processed, andis therefore provided as a sonar image trail. The Live Mode may renderthe sonar data to the user in real-time or near real-time (inconsideration of processing delays). Another implementation mode may beSaved Mode. In Saved Mode, the range cell data is saved in a memorydevice and is converted into a modified format to facilitate rendering.Live Mode and Saved mode may be implemented in isolation from the other,or together at the same time.

In order to implement a Live Mode rendering, the range cell data of eachsonar column may be separately considered, or, in some exampleembodiments each range cell may be considered separately. In thisregard, each sonar column of range cells may be associated withpositioning data indicative of a center point of the sonar column, andthe sonar column may be plotted (i.e., associated with a location) at ageo-location associated with the center point, and thereby the rangecell data of the sonar column can be plotted and rotated. According tosome example embodiments, plotted and rotated range cell data may bereferred to as adjusted range cell data. Based on the direction ofmovement of the watercraft, for example derived from historicalpositioning data, the sonar column and the range cell data may also betranslated. To translate the range cell data of a sonar column in thismanner, the aimed direction of the sonar beams for each transducerrelative to the keel of the watercraft may be used. For example, wherethe range cells of the sonar column are side scan data that wasgenerated by at a ninety-degree angle to the forward movement of thewatercraft (to the keel), the sonar column may be oriented with a centerpoint at the boat position when the sonar column was generated by afan-shaped beam directed, and rotated to be perpendicular to thedirection of movement at that time. As such, if the watercraft is in aturn, each sonar column may fan out through the turn. Accordingly, sincethe data of the sonar column is now plotted and rotated with respect toa geo-location and the direction of movement, each range cell in thesonar column can be associated with a given geo-location based on therange cell's offset from the center point of the sonar column.Accordingly, pixel data that is derived from the range cells can also begeo-located and rendered accordingly.

FIG. 7 a illustrates sonar columns 715 of range cell data that have beenplotted and rotated. Plotting may refer to the placement of the sonarcolumns and the associated range cell data at relative positions orgeographic positions. The spacing between the sonar columns may accountfor or reflect the scan rate of the transducers and the speed of thewatercraft. In this regard, at a fixed scan rate, a watercraft moving athigh speed will collect fewer sonar columns per geographic unit area. Assuch, according to some example embodiments, the scan rate of thetransducers may be dynamically controlled based on the speed of thewatercraft to increase the number of scans per unit of time. Forillustration purposes, the adjusted range cell data illustrated in FIG.7 a has also been converted to sonar image data, which may be rendered.A conversion to sonar image data can involve assigning a color palettevalue to each pixel described by the range cell data to facilitaterendering of the data.

It can also be seen in FIG. 7 a that as the watercraft turned, the sonarcolumns are rotated. As can be seen, when the watercraft is in a turn,sonar data in the inside of the turn may be overlapping, while sonardata on the outside of the turn may be spread apart. To correct theimage, processing circuitry may be configured to allow the data insidethe turn to simply overlap. Further, the processing circuitry may alsobe configured to fan out or spread the data on the outside of the turn,for example based on the determined radius of the turn, to give theappearance of a continuous data capture. Also, the sonar columns thatare captured when the watercraft is moving in a straight line may alsobe stretched relative to the direction of movement of the watercraft togive the appearance of a continuous data capture.

While FIG. 7 a illustrates the plotting and rotating of the renderedsonar columns relative to each other, the modified sonar columns or thepixel data derived from the range cells of the sonar columns may also bescaled and oriented to a map. In this regard, when rendering arepresentation of the adjusted range cell data on a map, the zoom levelof the presentation of the map may be considered and the range cell dataof the sonar columns may be accordingly scaled. To do so with respect tothe data of the sonar column as a whole, the width of the sonar column,for example as derived from the reach or lateral range of the beampattern, may be considered and scaled. Accordingly the sonar column maybe scaled to match the scaling of the map for the current zoom level.Rather than scaling the sonar column as a whole, the range cell data maybe scaled individually for each range cell. The range cell data of thesonar column may also be oriented relative to the orientation andcoordinate system of the map. For example, an orientation offset for themap be determined. The offset may indicate a deviation from a reference(e.g., due north) being directed towards, for example, the top of theview, and the adjusted range cell data may be oriented based on thisoffset.

As mentioned above, the sonar columns captured during the turn mayoverlap in the interior portion of the turn. According to some exampleembodiments, the most recently captured information for a given locationmay be used for rendering. In other words, at a particular locationwhere an overlap of sonar data has been captured, the most recentlycaptured range cell data for that location may be used when rendering anindication of the sonar data.

As an alternative, rather than using the most recently captured rangecell data for a given location when overlapping data has been captured,according to some example embodiments, the range cell data from varioussonar columns may be merged by rendering the peak value for the each ofthe range cells captured at a given location. For example, if a firstsonar column includes a range cell at a given location with a value of146 and a second sonar column includes a range cell data at the samelocation with a value of 65, a pixel derived from the 146 value may beused for rendering, regardless of the order in which the sonar columnswere captured. This technique of using the peak value range cell forrendering at a given location can be used in both Live Mode and SavedMode, as described herein. Further, the technique may be used anytimedata is overlapped, such as for example, when the same geographic areais captured during multiple passes. In this regard, overlapping of dataneed not occur only during a turn. Overlap may occur when surveyingpasses are being performed in a particular area and some areas arecaptured twice. As further described below, in Saved Mode multiple filesof sonar data may be rendered simultaneously. These files may have beencaptured at substantially different times (e.g., weeks, months, or yearsapart), but may nonetheless have overlapping data at particularlocations. These files may nonetheless be rendered together, and thepeak value range cell for a given location may be determined fromamongst a plurality of files to determine which range cell value torender at a given location. Further, when compiling overlapping datainto a single data structure, the peak value range cell for a givenlocation may be stored, while others for that same location are notstored or are discarded. According to some example embodiments,additional or alternative criteria may be considered when determiningwhich range cell value to render and/or store. For example, according tosome example embodiments, criteria such as the degree of turning by avessel when the range cell value was captured (e.g., favoring range cellvalues that were captured when the vessel was traveling in mostly astraight line (low turn degree) and disfavoring range cells that werecaptured when the vessel was in a tight turn (high turn degree)).Additionally, or alternatively, range cell values near the extents ofthe sonar column (furthest from the transducer) may be favored overrange cell values that were captured at closer distances to thetransducer.

Additionally, FIG. 7 b illustrates a process for removing the watercolumn from the sonar column of range cells. Removal of the water columnmay be an option that, for example, may be user controlled. To removethe water column, the range cell data may be analyzed and the boundariesof the water column may be determined to identify the water columnportion of the range cell data. As mentioned above, the water columnportion of the range cell data may be a portion describing echo returnsfrom a volume extending from the transducer element to the seafloor. InFIG. 7 b, the water column 700 of sonar column 705 may be defined as thedarker regions on either side of the center point. The remainingportions may be referred to as seafloor surface portions. A variety oftechniques can be used to programmatically determine the boundary of thewater column. For example, a threshold percentage increase in the numberof echo returns moving outward from the transducer may be indicative ofthe water column boundary. Moreover, if more than a relative thresholdnumber of echo returns at a given location are identified (e.g., asudden increase in the number of returns as data is analyzed moving awayfrom the transducer) a boundary of the water column may be defined. Aboundary of the water column may also be determined via or take intoaccount seafloor depth data that may be derived from depth soundings. Insome example embodiments, the process of determining the boundary of thewater column may also consider the range cell data of previouslycaptured sonar columns, because abrupt changes in the boundaries of thewater column can be uncommon. Upon determining the boundaries of thewater column, the data associated with the water column may be omittedor removed at 710 in sonar column 705′. Subsequent to removal, the dataon either side of the water column area may be stretched to meet at thecenter point of the sonar column as provided with respect to sonarcolumn 705″. According to some example embodiments, rather than beingstretched, the data may be translated or moved together, to meet at thecenter point without further modification (e.g., stretching of thedata).

FIG. 8 illustrates the process of rendering a Live Mode composite map815 that includes a rendering of sonar image data that has been derivedfrom adjusted range cell data with a presentation of a geographic map.Based on the data represented in the waterfall view 800 and the map 810,the Live Mode composite map 815 may be rendered with an adjusted sonarrepresentation 820 of sonar image data overlaying the map, where, forexample, the adjusted sonar representation 820 is semi-transparent sothat information underlying the representation is still viewable by theuser. In this regard, the sonar image data may be rendered as a layer ofthe composite map 815. According to some example embodiments, therendering of the sonar image data as the adjusted sonar representation820 may be one of a plurality of user-selectable layers that may overliethe presentation of the geographic map. In some example embodiments, theplurality of user-selectable layers may include a weather layer, a radarlayer, or a depth sounding layer (described further below with respectto FIG. 10).

The sonar image data used to render the adjusted sonar representation820 may be derived from the range cell data of the sonar columns andconverted into color palette pixel values (similar to the coloring usedin the waterfall view). According to some example embodiments, the sonarcolumns of range cell data may be rendered at a location on thegeographic map that is associated with an area that the sonar beam ofthe transducer element captured to generate the associated raw sonardata. As indicated in FIG. 8, the process of plotting the data of thesonar column at a location, rotating the data of the sonar columnrelative to the direction of movement, removing the water column,scaling and orienting the data of the sonar column based on thecharacteristics of the map (e.g., zoom level and compass orientation)and rendering the image is described. It is also noteworthy to considerthe turn 830, which is associated with the structure 610 of FIG. 6. Dueto the rotation of the sonar columns, the structure 610 takes a morelinear form rather the distorted curved form presented in FIG. 6.

As stated above, the Live Mode composite map may be updated as new sonardata is received and processed. Similar to the waterfall view, a memorybuffer may be used that, when full, removes the oldest sonar column andadds the most recent sonar column. Accordingly, in some exampleembodiments, based on the size of the memory buffer, a fixed number ofsonar columns may be rendered on a display once the buffer is full. Whenrendering, the oldest incremental set of sonar image data may thereforebe removed from the buffer or rendering may be otherwise discontinued(e.g., due to overwriting of the data), upon rendering a new incrementalset of sonar image data.

According to some example embodiments, to reduce the processing powerneeded to perform a rendering of the data of a sonar column, thegeographic region covered by the data of the sonar column may beconsidered prior to processing. In this regard, if no portion of theregion covered by the data of the sonar column is currently viewable inthe display (e.g., that portion of the map is not visible), then thedata of the sonar column need not be processed for rendering.Alternatively, if a portion (e.g., one or more range cells) of the sonarcolumn would be present on the current display, then the data of thesonar column may be processed and rendered.

Via a user interface of the display device, a user may activate LiveMode. Once activated, the sonar columns may be rendered on the displayas the data is received. According to some example embodiments, afteractivation of the Live mode, the sonar columns may be rendered based ona regular timer signal, or upon receipt of a given or threshold numberof sonar columns that have yet to be rendered.

An alternative to presenting indications of the actual sonar data in theLive View composite map, may be to render extent trails. Since therendering of the actual sonar data may be processing intensive, someapplications may require only that the areas that have been scanned beindicated on the composite map.

As described above, the data of a sonar column may have a determinablecorresponding physical width. Based on this width, extent trails of thesonar beams can be rendered on a composite map to indicate the areasfrom which sonar data has been collected, without the need of actuallyrendering indications of the actual sonar data. FIG. 9 illustrates anexample rendering of extent trails according to some exampleembodiments. In this regard, the extent trail view 900 includes arendering indicating the vessel trail 905, the starboard side scanextent trail 910, and the port side scan extent trail 915. The vesseltrail 905 may be determined based on the positioning data provided byposition sensing circuitry, and, based on an association between thepositioning data and the width of the sonar column, the starboard andport extent trails can be determined and rendered. In this regard, ahorizontal extent of the sonar column of range cell data may bedetermined, for example using the positioning data. The display devicemay be configured to render a form of the sonar image data as theseextent trails, where the extent trails 915 and 910 indicate the positionof the horizontal extent of the sonar column. The extent trails may beparallel to the vessel's trail and may be located to align with the sidescan sonar's geographic coverage width. The extent trails may be coloredred and green to coincide with the common navigation light colors forport and starboard, respectively. According to some example embodiments,the extent trails may be an option to be toggled in a vessel view thatshows where the vessel has previously been located. Further, the extenttrails may be rendered without also presenting or rendering informationrepresentative of echo returns.

Extent trails functionality may be useful in a variety of applicationsincluding, for example, surveying applications. To create a high-qualitysurvey, consecutive passes made by the watercraft should be aligned nextto each other with little or no overlap of the side scan beam. With theuse of extent trails, this type of surveying can be conducted since arendering of the covered areas is provided on the display. Additionally,since Live Mode rendering can require substantial processing power, somesonar systems that lack the requisite processing power may use theextent trails functionality to indicate the areas where data has beenacquired for subsequent use as part of the Saved Mode, which may besupported by sonar systems having lesser processing power. Further, theextent trails may be rendered for a longer period than a Live Moderendering, since rendering of the extent trails does not require thememory capacity that a Live Mode rendering may require.

Yet another optional feature that may be implemented in the Live Mode orin the Saved Mode (as described below) may be a composite map with depthsounding indicators. The composite map 1000 of FIG. 10 provides anexample rendering of a Live Mode adjusted sonar representation 1010 withdepth sounding indicators 1005. The depth sounding indicators may beadded as a separate layer on the composite map. In this regard, as awatercraft moves through an area, the sonar system may be configured totake depth measurements using, for example, a downscan transducerelement. The depth measurement may be associated with positioning dataprovided by the position sensing circuitry at the time that the depthmeasurement is taken to generate a geo-located depth measurement. Thegeo-located depth measurements may then be rendered as depth soundingindicators on a composite map with a Live Mode adjusted sonarrepresentation as depicted in FIG. 10. As mentioned above, depthsounding indicators may also be rendered with data that is processed inaccordance with the Saved Mode.

According to some example embodiments, a sonar system may be configuredto implement a Saved Mode. In the Saved Mode, raw sonar data may beconverted into sonar columns of range cell data, and the range cell datamay be stored in a local memory device (e.g., memory device 120). Therange cell data may be further transformed into a data structurecomprising a collection of tile-based resolution layers that facilitatethe rendering of sonar data either on a display of a sonar systeminstalled in a watercraft or on an external display device that may nothave an interface to transducers and other sonar hardware (e.g., abusiness or household computer system, a mobile computing device such asa smartphone or a tablet device, or the like).

In the Saved Mode, there may be no limitation on the amount of data thatmay be rendered. Unlike the Live Mode, implementation of the Saved Moderenders sonar data that was previously stored in a memory device.Accordingly, the Saved mode may be useful in surveying applications andthe like.

FIG. 11 illustrates an example rendering of sonar data in the SavedMode. The Saved Mode composite map 1100 includes an adjusted sonarrepresentation 1105 that appears similar to a rendering of sonar data inthe Live Mode described above. In this regard, as further describedbelow, the range cell data stored in a sonar log file may be plotted androtated to begin the conversion process to render the sonar image dataformatted in the Saved Mode. The sonar data rendered in the Saved Modecomposite map 1100 may be derived from range cell data that has beenorganized into tile-based segments and rendered on a tile-by-tile basis.

As such, Saved Mode operation may involve the conversion of range celldata into an intermediate form, prior to a subsequent conversion toimage data at rendering time. According to some example embodiments,range cell data is generated from the raw sonar data provided by thetransducer element, and stored as a sonar log file (e.g., an .sl2 file)which may be stored in a memory device such as a data storage device.The sonar log files may be further converted, according to some exampleembodiments, into a data structure (e.g., a file) that facilitatesrendering of the sonar data through the use of tile-based resolutionlayers. The data structure may be organized as a file and referred to asa StructureMap file or .smf file. The data structure may also beorganized to support rendering on various mapping platforms, such as,for example, Google Earth. The data structure may be stored on a memorythat is internal to a sonar system or a removable memory such as, forexample, an SD card. When a rendering request is made, the datastructure may be processed for rendering the sonar data overlaying amap.

To generate the data structure, processing of the range cell data may beperformed to plot and rotate the range cell data of a sonar column asdescribed above with respect to the processing for the Live Mode.However, in the Saved Mode, further processing of the plotted androtated (adjusted) range cell data may be performed. In this regard, thesonar columns included in a sonar log file may be considered in theaggregate, and a grid system may be applied to the range cell data. FIG.12 illustrates the application of a grid system 1205 on an adjustedsonar representation 1200 of the range cell data in a sonar log file,for illustration purposes.

The range cell data located within each of the tiles may be grouped tothe tile area. The tile areas may be defined in any number of ways,including, but not limited to, the tile definition provided in FIG. 13.Grid tile 1300 may be defined by a tile center, which may be describedby geographic coordinates for the tile center 1305. The tile may befurther defined by a tile length 1315 and a tile width 1310. Since agrid system may have square tiles, in some example embodiments, a tilewidth alone may be sufficient to describe the shape and boundaries(relative to the center point) of the tile. The size and shape of thetiles may be determined based on any type of criteria. According to someexample embodiments, the tile shapes may be square or rectangular andthe size of the tiles may depend on the quantity or resolution of thedata within the tile.

As mentioned above, the actual data values stored in the tiles may berange cell data, and as such, the tiles and the data within the tilesare not yet interpreted as images. In other words, the data in the tilesneed not be pixels with an applied color palette. The process to renderthe data of the data structure and the tiles may begin with a chartrequest or may occur automatically when new data structure is created.When the composite map is redrawn, an iteration over all the Saved Modedata structures may be performed to identify the data structures withgeographic areas that intersect with the map. The data of the tilesinside the data structure may be given a palette and may be rotated andscaled to fit the chart view. The data of the tiles may then be drawn tothe chart, with optional transparency.

According to various example embodiments, the composite map that isgenerated with the sonar data may be an interactive map that permitszooming and panning. In this regard, according to some exampleembodiments, a single top-most tile having the highest resolution may beused to render the interactive map. This is an example of animplementation with a single-resolution layer data structure that isrendered, regardless of the zoom level. However, in some exampleembodiments, multiple-resolution layers having differing resolutions canbe generated and rendered, as needed, to increase the efficiency of userinteractions with the map. To facilitate the ability to increase theefficiency of map interactions, the data structure generated for use in,for example, the Saved Mode, may include a collection of layers of rangecell data that are formatted for different resolutions. In this regard,according to some example embodiments, the resolution layers may beconstructed such that the resolution layers differ by half-resolutionincrements. FIG. 14 illustrates an example data structure 1400 withthree resolution layers. Resolution layer 1405 may have the highestresolution, and therefore have the largest number of tiles. The rangecell data included in the tiles of resolution layer 1405 may be modifiedto reduce the resolution of the data by one-half, and this lowerresolution data may be grouped into the tiles of resolution layer 1410.In turn, range cell data included in the tiles of resolution layer 1410may be modified to reduce the resolution of the data by one-half, andthis lower resolution data may be grouped into the single tile ofresolution layer 1415. By constructing the data structure in thismanner, different layers of data may be rendered as a user transitionsthough zoom levels on a composite map. A data structure may therefore beconstructed where groups of adjusted range cell data (i.e., plotted androtated) are stored in tiles having a particular resolution. Further, anode tree architecture for the data structure can be generated based onthe number of tiles for each resolution layer and the geographicboundaries that are shared between the tiles of each layer.

Various file formats may be used for compiling the data structure. Insome example embodiments, the data structure may take the form of a file(e.g., a .smf file) that includes fields and packets. In this regard,the file may include a file header. The file header may comprise a fieldthat identifies the file type (e.g., identifies the file as a .smf file)and thereby indicates the formatting of the file. Further, the fileheader may include a version field indicating a version number for thefile for compatibility determinations.

The file may also include any number of data packets with each packethaving a header. In this regard, each packet may begin with a commonheader that specifies a packet type. Upon reading the packet type, adecision may be made as to whether the remainder of the packet should beconsidered based upon the operation currently being performed. The sizeof the packet, which need not include the size of the common header, mayalso be provided in the common packet header. Indicating the size of thepacket may allow a read operation to be aware of the end of the packetbased on the packet's size. Example packet types in the file may includean overall log information type, a tile type, a spot soundings type, ora table node type.

A file may include a single overall log information packet that may bethe first packet in the file. The overall log information packet mayfollow the file header. If the overall log information packet is notencountered at the correction location, an error indication may beissued or subsequent behavior may be undefined.

The overall log information packet may include information about thecharacteristics of the sonar log file. In this regard, the overall loginformation packet may include fields for indicating center coordinatesfor the sonar data in the log file, a length and width of the grid thatencompasses the sonar data in the log file, and the size (e.g., width,or width and length) of the tiles indicating the number of cells in atile. The overall log information packet may also include an indicatorof the highest resolution layer, and the number of resolution layers.The overall log information packet may also include a byte offset valuefor use in determining where a tile tree table can be located in thefile.

The file may also include one or more tile packets. The payload of thetile packets may be the tile data (e.g., the range cell data for thetile). The payload may be compressed using various techniques. The tilepacket may also include a field indicating a tile identifier,coordinates for the tile center, an indication of the size of the datain the tile, and a resolution value for the tile.

The file may further include spot sounding packets. Each spot soundingpacket may include an indication of a number of soundings in the packet.For each sounding, the packet may include coordinates indicating thelocation of the sounding and a depth value.

Additionally, the file may include table node packets. A first tablenode packet may be a master node that represents the lowest resolutionlayer, which may be a single tile layer that includes data from theentire log file. If there are children nodes from a table node packet,then those nodes may be read thereafter to determine the architecture ofthe table. As such, the table node packets may include various fieldssuch as a tile center indicating the coordinates of the center, a tilewidth (and length), a resolution value, a file offset of the tileindicating the start of the common header, and the number of childrentable node packets.

Having generally described the process of converting the range cell datainto a data structure, such as the file structure described above, FIG.15 illustrates a flowchart of example operations that may be performedto implement the data conversion in the Saved Mode. At 1500, acalculation or determination of the overall geographic area of the sonarlog file may be performed. In this regard, the range cell data in thesonar log file may already be plotted and rotated, and as such the datamay be referred to as adjusted range cell data. Subsequently, at 1510, anumber of tiles for the remaining resolution layer having the highestresolution may be determined and that layer may be the currentresolution layer considered for analysis. In this regard, during a firstiteration the highest resolution layer may be considered and a gridsystem may be applied to sectionalize the data in the sonar log file.For example, a grid system having eight tiles may be applied. Further,for example, if the number of tiles on each side of the grid system arenot already a power of 2 (e.g., 16, 8, 4, 2, 1), the number of tiles maybe rounded up so that each side of the grid system has a number of tilesthat is a power of two. Subsequently, different grid systems may beapplied to range cell data having different resolutions, and applicationof the grids systems may be based on the geographic area that is beingconsidered.

At 1520, each tile in the current resolution layer may be processed.Processing of the tiles may include attempting to render the range celldata in the sonar log file. If the attempt to render the range cell datain the cell is successful, then the data may be saved in associationwith the tile. In this regard, the groups of range cell data may beseparately stored based on the boundaries of the tiles. Thecharacteristics of the tile may be stored for consideration whenbuilding a table node tree. A tile header may be saved with the data forthe cell. If no data is present in the cell, no further operations withrespect to that tile need to be performed.

At 1530, a determination may be made as to whether the currentresolution layer includes data in more than one tile. If so, then theresolution of the range cell data for the current layer may be reducedby one half at 1540, and a new resolution layer may be considered. Inthis regard, for example, when a determination of the number of tilesfor the new resolution layer is determined at 1510, the number of tileson each side of the grid for the new resolution layer would be reducedby one-half of the number of tiles on the respective sides of theprevious resolution layer.

This process may be repeated until the current resolution layer includesonly one tile. When the single tile resolution layer is considered, thenprocessing of the sonar log file is complete and the node tableindicating the relationships between the tiles may be constructed andsaved at 1550. Subsequently, the process may end at 1560.

Rendering the sonar image data of Saved Mode data structure may beperformed in various ways. For example, sonar image data may be renderedwith the presentation of a geographic map where the sonar image data isthe derived from range cell data of a tile associated with one of theplurality of resolution layers of a data structure. Further, based on aresolution of the presentation of the geographic map, one of theplurality of resolution layers may be selected for rendering. The nodetree indicative of an architecture of the resolution layers and tiles ofthe data structure may also be used in the selection of a resolutionlayer. According to some example embodiments, the adjusted range celldata with a tile to be rendered may be scaled and oriented based on anorientation and zoom level of the presentation of the geographic map. Acolor palette may also be applied to the range cell data of tile to berendered. The coloring of the range cell data may impart informationindicating a density of echo returns at a location of the range celldata of the given tile.

FIG. 16 is a flow chart describing an example process for rendering thedata stored in a data structure for the Saved Mode. The example processmay begin by parsing the data structure and loading the data in the datastructure or file at 1600. To do so, according to some exampleembodiments, the file header may be read and a version compatibilitycheck may be performed. Further, a common header and a log fileinformation packet may be read. Via the offset in the log fileinformation packet, reading of the table nodes may be performed todetermine the architecture of the data structure. In instances where theoffset value is zero or movement within the data structure based on theoffset fails, the data structure may be moved through in sequence untilthe first tile table node is found. Regardless of how the tile tablenode is found, the first table node (i.e., the master table node) may beread, and subsequently any children nodes may be read, until allchildren nodes are read. Upon completion, the architecture of the datastructure may be determined (e.g., how many resolution layers, how manytiles on each layer, etc.).

At 1610, a determination may be made as to whether the data meetsspecific criteria for rendering. In this regard, for example, ananalysis of the geo-location of the data may be performed to determineif any of the data intersects with the currently requested map or aportion of the map presented on a display. Similarly, an analysis of themaster node representative of the single tile resolution layer may beperformed to determine if the boundaries of the master node intersectwith the currently requested map or a portion of the map presented on adisplay. If the data fails one or more of the criteria, then therendering process may be ended.

However, if the criteria are met, then a determination of whichresolution layer to render may be made at 1620. In this regard, aresolution of the map may be determined and a resolution layer having aresolution that is greater than or equal to the resolution of the mapmay be used. In some instances, the resolution layer having the highestresolution may be used because no higher resolution layer may beavailable. When the proper resolution layer is determined, the data fora tile within the resolution layer may be loaded. To do so, the offsetgiven by an associated child node may be used to retrieve the data. Atthe location indicated by the offset, a common header and a tile packetmay be located. Additionally, other related packets may be foundfollowing the tile packet. For example, a spot sounding packet mayfollow. Further, in an instance where a tile that is being analyzed isnot at the proper resolution, then an analysis of a child tile may beperformed and an intersection of the tile with the map may be made asdescribed at 1610 and the process may continue from that point withrespect to each child tile. Further, this process may continue in arecursive manner.

After loading the data of the tile, palette colors may be applied to therange cell data in the tile at 1630. Further, the data may be scaled andoriented as appropriate for rendering on the map. At 1640, therepresentation of the sonar data may be rendered with the map asprovided, for example, in FIG. 11.

Many modifications and other embodiments of the inventions set forthherein will come to mind to one skilled in the art to which theseembodiments pertain having the benefit of the teachings presented in theforegoing descriptions and the associated drawings. Therefore, it is tobe understood that the inventions are not to be limited to the specificembodiments disclosed and that modifications and other embodiments areintended to be included within the scope of the appended claims.Although specific terms are employed herein, they are used in a genericand descriptive sense only and not for purposes of limitation.

That which is claimed:
 1. An apparatus comprising: a transducer assemblyconfigured to emit a sonar beam, receive return echoes of the sonarbeam, and convert the return echoes into raw sonar data, wherein thetransducer assembly is configured to be affixed to a watercraft;position sensing circuitry configured to determine positioning data, thepositioning data being indicative of a position of the watercraft;processing circuitry configured to: receive the raw sonar data and thepositioning data, convert the raw sonar data into range cell data basedat least on amplitudes of the return echoes; make a location-basedassociation between the range cell data and the positioning data, plotthe range cell data based on respective positions derived from thepositioning data and rotate the range cell data based on a direction ofmovement of the watercraft to generate adjusted range cell data, andconvert the adjusted range cell data into sonar image data; and adisplay device configured to render at least a portion of a sonar imageover a geographic map at a position and oriented in the direction ofmovement of the watercraft, wherein the sonar image is based on thesonar image data, wherein the position of the sonar image on thegeographic map corresponds to the position of the watercraft associatedwith the sonar image data; wherein, in an instance in which at least twosets of range cell data are associated with a same location, the displaydevice is configured to render the portion of the sonar image at thesame location corresponding to one of the at least two sets of rangecell data, wherein each set of range cell data of the at least two setsof range cell data comprises an amplitude value at the same location,and wherein the amplitude value for the one of the at least two sets ofrange cell data that corresponds to the rendered portion of the sonarimage is larger than any of the other amplitude values of the other setsof range cell data of the at least two sets of range cell data.
 2. Theapparatus of claim 1, wherein the transducer assembly includes arectangular transducer configured to emit a fan-shaped sonar beam, andwherein the transducer assembly is further configured to be positionedon the watercraft to operate as a side scan sonar transducer assembly.3. The apparatus of claim 1, wherein the display device is configured torender the sonar image as one of a plurality of selectable layers. 4.The apparatus of claim 1, wherein when the watercraft turns, theprocessing circuitry is configured to spread the range cell data on theoutside of the turn.
 5. The apparatus of claim 3, wherein the pluralityof selectable layers includes a weather layer, a radar layer, or a depthsounding layer.
 6. The apparatus of claim 1, wherein the display deviceis configured to render the sonar image as a semi-transparent layer. 7.The apparatus of claim 1, wherein the transducer assembly is configuredto repeatedly emit the sonar beam at a scan rate to generate, and upongeneration transmit to the processing circuitry, incremental sets of rawsonar data including a given incremental set of the raw sonar data;wherein the processing circuitry is configured to, in response toreceiving the given incremental set of raw sonar data, process theincremental set of raw sonar data to generate a sonar column of rangecell data, and generate a given incremental set of sonar image databased on the sonar column of range cell data; and wherein the displaydevice is configured to, in response to the generation of the givenincremental set of sonar image data, render the sonar image based on thegiven incremental set of sonar image data.
 8. The apparatus of claim 7,wherein the processing circuitry is configured to scale the sonar columnof range cell data based on a zoom level of the geographic map.
 9. Theapparatus of claim 7 wherein the processing circuitry is configured toorient the sonar column of range cell data relative to a coordinatesystem of the geographic map.
 10. The apparatus of claim 7 wherein thedisplay device is configured to render the sonar image at the positionon the geographic map that is associated with an area that thetransducer assembly captured the return echoes of the sonar beam. 11.The apparatus of claim 7, wherein the position sensing circuitrycomprises a global positioning system (GPS) device and wherein theposition sensing circuitry is configured to determine the positioningdata of the watercraft as GPS coordinates; and wherein processingcircuitry is configured to plot and rotate the sonar column of rangecell data using the GPS coordinates.
 12. The apparatus of claim 7,wherein the processing circuitry is configured to generate a respectivesonar column of range cell data for each incremental set of raw sonardata; and wherein the display device is configured to render the sonarimage based on the sonar columns of range cell data.
 13. The apparatusof claim 7 wherein the processing circuitry is configured to discontinuerendering an oldest sonar image upon rendering the sonar image.
 14. Theapparatus of claim 7, wherein the transducer assembly includes arectangular transducer element configured to emit a fan-shaped sonarbeam and configured to be positioned on the watercraft to operate as aside scan sonar transducer assembly; and wherein the processingcircuitry is configured to rotate the sonar column of range cell databased on the direction of movement of the watercraft such that the sonarimage is rotated to extend in a direction that is substantiallyperpendicular to the direction of movement of the watercraft.
 15. Theapparatus of claim 7, wherein the processing circuitry is configured todetermine a horizontal extent of the sonar column of range cell data,and wherein the display device configured to render a visual indicatorof a position indicating the horizontal extent of the sonar column ofrange cell data.
 16. The apparatus of claim 15, wherein the displaydevice is configured to render the visual indicator without alsopresenting information representative of the echo returns.
 17. Theapparatus of claim 15 further comprising a data storage device andwherein the processing circuitry is configured to store the sonar columnof range cell data in the data storage device.
 18. The apparatus ofclaim 7, wherein the processing circuitry is configured to determine ahorizontal extent of the sonar column of range cell data based on thepositioning data generated by the position sensing circuitry.
 19. Theapparatus of claim 1, wherein the processing circuitry is configured toanalyze the range cell data to identify a water column portion of therange cell data, wherein the water column portion of the range cell datais a portion of the range cell data describing the echo returns from thetransducer assembly to the seafloor based on an angle of the sonar beam;and wherein the processing circuitry is configured to remove the rangecell data in the water column portion.
 20. The apparatus of claim 19,wherein the processing circuitry configured to analyze the range celldata to identify the water column portion includes being configured toidentify the water column portion of the range cell data based on aquantity of echo returns in a given area exceeding a relative threshold.21. The apparatus of claim 19, wherein the processing circuitry isconfigured to determine seafloor depth data, and wherein the processingcircuitry configured to analyze the range cell data to identify thewater column portion includes being configured to identify the watercolumn portion of the range cell data based on the seafloor depth data.22. The apparatus of claim 1, wherein the processing circuitry isconfigured to analyze the range cell data to identify a water columnportion of the range cell data and a seafloor surface portion of therange cell data, wherein the water column portion of the range cell datais a portion of the range cell data describing the echo returns from avolume extending from the transducer assembly to the seafloor based onan angle of the sonar beam, and wherein the seafloor surface portion isa portion of the range cell data describing the echo returns thatinteract with the seafloor; and wherein the processing circuitry isfurther configured to remove the range cell data in the water columnportion and expand the range cell data of the seafloor surface portionto maintain a width of the range cell data despite the omission of thewater column portion.
 23. The apparatus of claim 1 further comprising amemory device, and wherein the processing circuitry is configured tostore the range cell data as a sonar log file in the memory device. 24.The apparatus of claim 23, wherein the processing circuitry configuredto plot, and rotate the range cell data is configured to plot and rotatethe range cell data in the sonar log file.
 25. The apparatus of claim24, wherein the processing circuitry configured to convert the adjustedrange cell data includes being configured to: determine a geographicarea covered by the adjusted range cell data; based on the geographicarea, apply a first grid system to the adjusted range cell data to groupthe adjusted range cell data into one or more tiles; and separatelystore the groups of adjusted range cell data within respective tiles ofthe one or more tiles.
 26. The apparatus of claim 25, wherein theprocessing circuitry configured to separately store the groups ofadjusted range cell data within the respective tiles includes beingconfigured to separately store the groups of adjusted range cell data ata first resolution within the respective tiles as one resolution layerof a data structure comprising a plurality of resolution layers.
 27. Theapparatus of claim 26, wherein the processing circuitry is configured toapply a second grid system to the adjusted range cell data at a secondresolution.
 28. The apparatus of claim 27, wherein the processingcircuitry is configured to generate a node tree indicative of anarchitecture of the resolution layers and tiles of the data structure.29. The apparatus of claim 26, wherein the sonar image data is thederived from range cell data of a tile associated with one of theplurality of resolution layers of the data structure.
 30. The apparatusof claim 26, wherein the processing circuitry is configured to selectone of the plurality of resolution layers based on a resolution of thegeographic map.
 31. The apparatus of claim 26, wherein the processingcircuitry is configured to select one of the plurality of resolutionlayers based on a resolution of the presentation of the geographic mapand a node tree indicative of an architecture of the resolution layersand tiles of the data structure.
 32. The apparatus of claim 26, whereinthe processing circuitry is configured to scale and orient the rangecell data of a given tile based on an orientation and zoom level of thegeographic map, and color the range cell data of the given tile byapplying a color palette to the range cell data of the given tile; andwherein the sonar image data is derived from the range cell data of thegiven tile that has been oriented, scaled, and colored.
 33. Theapparatus of claim 12, wherein the processing circuitry configured tocolor the range cell data of the given tile includes being configured tocolor the range cell data of the given tile to impart informationindicating a density of echo returns at a location of the range celldata of the given tile.
 34. The apparatus of claim 25, wherein theprocessing circuitry configured to apply the first grid system to theadjusted range cell data to group the adjusted range cell data intotiles includes being configured to define each tile based oncharacteristics including a tile center point, and a tile width.
 35. Theapparatus of claim 1, wherein the processing circuitry is configured toreceive depth sounding data and associate the depth sounding data with alocation based on the positioning data; and wherein the display deviceis configured to render indications of the depth sounding data with thesonar image.
 36. The apparatus of claim 7, wherein the processingcircuitry is configured to dynamically adjust the scan rate based on aspeed of the watercraft such that the transducer assembly is configuredto repeatedly emit the sonar beam at a first scan rate when thewatercraft is traveling at a first speed and a second scan rate when thewatercraft is traveling at a second speed, wherein the first scan rateis greater than the second scan rate and the first speed is greater thanthe second speed.
 37. A method comprising: emitting a sonar beam by atransducer assembly affixed to a watercraft; receiving return echoes ofthe sonar beam; converting the return echoes into raw sonar data;determining positioning data by position sensing circuitry, thepositioning data being indicative of a position of the watercraft;receiving the raw sonar data and the positioning data by processingcircuitry; converting the raw sonar data into range cell data based atleast on amplitudes of the return echoes; making a location-basedassociation between the range cell data and the positioning data;plotting the range cell data based on respective positions derived fromthe positioning data and rotating the range cell data based on adirection of movement of the watercraft to generate adjusted range celldata; converting the adjusted range cell data into sonar image data; andrendering, by a display device, at least a portion of a sonar image overa geographic map at a position and oriented in the direction of movementof the watercraft, wherein the sonar image is based on the sonar imagedata, wherein the position of the sonar image on the geographic mapcorresponds to the position of the watercraft associated with the sonarimage data; wherein, in an instance in which at least two sets of rangecell data are associated with a same location, the display device isconfigured to render the portion of the sonar image at the same locationcorresponding to one of the at least two sets of range cell data,wherein each set of range cell data of the at least two sets of rangecell data comprises an amplitude value at the same location, and whereinthe amplitude value for the one of the at least two sets of range celldata that corresponds to the rendered portion of the sonar image islarger than any of the other amplitude values of the other sets of rangecell data of the at least two sets of range cell data.
 38. The method ofclaim 37, wherein emitting the sonar beam includes emitting a fan-shapedsonar beam, wherein the transducer assembly is configured to bepositioned on the watercraft to operate as a side scan sonar transducerassembly.
 39. The method of claim 37, wherein rendering the sonar imageincludes rendering the sonar image as one of a plurality of selectablelayers.
 40. The method of claim 37, wherein the method further comprisesspreading the range cell data on the outside of a turn when thewatercraft turns.
 41. The method of claim 39, wherein the plurality ofselectable layers includes a weather layer, a radar layer, or a depthsounding layer.
 42. The method of claim 37, wherein rendering the sonarimage includes rendering the sonar image as a semi-transparent layer.43. The method of claim 37, wherein emitting the sonar beam includesrepeatedly emitting the sonar beam at a scan rate to generate, and upongeneration transmit to the processing circuitry, incremental sets of rawsonar data including a given incremental set of the raw sonar data;wherein the method further comprises, in response to receiving the givenincremental set of raw sonar data, processing the incremental set of rawsonar data to generate a sonar column of range cell data, and generatinga given incremental set of sonar image data based on the sonar column ofrange cell data; and wherein the method further comprises, in responseto the generation of the given incremental set of sonar image data,rendering the sonar image based on the given incremental set of sonarimage data.
 44. The method of claim 43 further comprising scaling thesonar column of range cell data based on a zoom level of the geographicmap.
 45. The method of claim 43 further comprising orienting the sonarcolumn of range cell data relative to a coordinate system of thegeographic map.
 46. The method of claim 43, wherein rendering the sonarimage includes rendering the sonar image at the position on thegeographic map that is associated with an area that the transducerassembly captured the return echoes of the sonar beam.
 47. The method ofclaim 43, wherein determining the positioning data includes determiningthe positioning data of the watercraft as GPS coordinates; and whereinplotting and rotating the range cell data is performed using the GPScoordinates.
 48. The method of claim 43 further comprising: generating arespective sonar column of range cell data for each incremental set ofraw sonar data; and rendering the sonar image based on the sonar columnsof range cell data.
 49. The method of claim 43 further comprisingdiscontinuing the rendering of an oldest sonar image upon rendering thesonar image.
 50. The method of claim 43, wherein the transducer assemblyis configured to be positioned on the watercraft to operate as a sidescan sonar transducer assembly; and wherein the method further comprisesrotating the sonar column of range cell data based on the direction ofmovement of the watercraft such that the sonar image is rotated toextend in a direction that is substantially perpendicular to thedirection of movement of the watercraft.
 51. The method of claim 43further comprising determining a horizontal extent of the sonar columnof range cell data, and wherein rendering the sonar image includesrendering a visual indicator of a position indicating the horizontalextent of the sonar column of range cell data.
 52. The method of claim51, wherein rendering the visual indicator includes rendering the visualindicator without also presenting information representative of the echoreturns.
 53. The method of claim 51 further comprising storing the sonarcolumn of range cell data in a data storage device.
 54. The method ofclaim 51 further comprising determining a horizontal extent of the sonarcolumn of range cell data based on the positioning data.
 55. The methodof claim 37 further comprising analyzing the range cell data to identifya water column portion of the range cell data, wherein the water columnportion of the range cell data is a portion of the range cell datadescribing the echo returns from a volume extending from the transducerassembly to the seafloor based on an angle of the sonar beam; andremoving the range cell data in the water column portion.
 56. The methodof claim 55, wherein analyzing the range cell data to identify the watercolumn portion includes identifying the water column portion of therange cell data based on a quantity of echo returns in a given areaexceeding a relative threshold.
 57. The method of claim 55 furthercomprising determining seafloor depth data, and wherein analyzing therange cell data to identify the water column portion includesidentifying the water column portion of the range cell data based on theseafloor depth data.
 58. The method of claim 37 further comprisinganalyzing the range cell data to identify a water column portion of therange cell data and a seafloor surface portion of the range cell data,wherein the water column portion of the range cell data is a portion ofthe range cell data describing the echo returns from a volume extendingfrom the transducer assembly to the seafloor based on an angle of thesonar beam, and wherein the seafloor surface portion is a portion of therange cell data describing the echo returns that interact with theseafloor; and wherein the method further comprises removing the rangecell data in the water column portion and expanding the range cell dataof the seafloor surface portion to maintain a width of the range celldata despite the omission of the water column portion.
 59. The method ofclaim 37 further comprising storing the range cell data as a sonar logfile in a data storage device.
 60. The method of claim 59, whereinplotting and rotating the range cell data includes plotting and rotatingthe range cell data in the sonar log file.
 61. The method of claim 60,wherein converting the adjusted range cell data includes: determining ageographic area covered by the adjusted range cell data; based on thegeographic area, applying a first grid system to the adjusted range celldata to group the adjusted range cell data into one or more tiles; andseparately storing the groups of adjusted range cell data withinrespective tiles of the one or more tiles.
 62. The method of claim 61,wherein separately storing the groups of adjusted range cell data withinthe respective tiles includes separately storing the groups of adjustedrange cell data at a first resolution within the respective tiles as oneresolution layer of a data structure comprising a plurality ofresolution layers.
 63. The method of claim 62 further comprisingapplying a second grid system to the adjusted range cell data at asecond resolution.
 64. The method of claim 63 further comprisinggenerating a node tree indicative of an architecture of the resolutionlayers and tiles of the data structure.
 65. The method of claim 62,wherein the sonar image data is the derived from range cell data of atile associated with one of the plurality of resolution layers of thedata structure.
 66. The method of claim 62 further comprising selectingone of the plurality of resolution layers based on a resolution of thegeographic map.
 67. The method of claim 62 further comprising selectingone of the plurality of resolution layers based on a resolution of thepresentation of the geographic map and a node tree indicative of anarchitecture of the resolution layers and tiles of the data structure.68. The method of claim 62 further comprising: scaling and orienting therange cell data of a given tile based on an orientation and zoom levelof the presentation of the geographic map; coloring the range cell dataof the given tile by applying a color palette to the range cell data ofthe given tile; and wherein the sonar image data is derived from therange cell data of the given tile that has been oriented, scaled, andcolored.
 69. The method of claim 68, wherein coloring the range celldata of the given tile includes coloring the range cell data of thegiven tile to impart information indicating a density of echo returns ata location of the range cell data of the given tile.
 70. The method ofclaim 61, wherein applying the first grid system to the adjusted rangecell data to group the adjusted range cell data into tiles includesdefining each tile based on characteristics including a tile centerpoint, and a tile width.
 71. The method of claim 37 further comprising:receiving depth sounding data; associating the depth sounding data witha location based on the positioning data; and rendering indications ofthe depth sounding data with the sonar imaging data.
 72. The method ofclaim 43 further comprising dynamically adjusting the scan rate based ona speed of the watercraft such that the transducer assembly isconfigured to repeatedly emit the sonar beam at a first scan rate whenthe watercraft is traveling at a first speed and a second scan rate whenthe watercraft is traveling at a second speed, wherein the first scanrate is greater than the second scan rate and the first speed is greaterthan the second speed.
 73. A non-transitory computer-readable mediumcomprised of at least one memory device having computer programinstructions stored thereon, the computer program instructions beingconfigured, when executed by processing circuitry, to: causetransmission of a sonar beam via a transducer assembly affixed to awatercraft; determine positioning data by position sensing circuitry,the positioning data being indicative of a position of the watercraft;convert received raw sonar data into range cell data based at least onamplitudes of return echoes of the sonar beam received by the transducerassembly, wherein the raw sonar data is based on the return echoes; makea location-based association between the range cell data and thepositioning data; plot the range cell data based on respective positionsderived from the positioning data and rotate the range cell data basedon a direction of movement of the watercraft to generate adjusted rangecell data; convert the adjusted range cell data into sonar image data;and render at least a portion of a sonar image over a geographic map ata position and oriented in the direction of movement of the watercraft,wherein the sonar image is based on the sonar image data, wherein theposition of the sonar image on the geographic map corresponds to theposition of the watercraft associated with the sonar image data;wherein, in an instance in which at least two sets of range cell dataare associated with a same location, the portion of the sonar image thatis rendered at the same location corresponds to one of the at least twosets of range cell data, wherein each set of range cell data of the atleast two sets of range cell data comprises an amplitude value at thesame location, and wherein the amplitude value for the one of the atleast two sets of range cell data that corresponds to the renderedportion of the sonar image is larger than any of the other amplitudevalues of the other sets of range cell data of the at least two sets ofrange cell data.
 74. The computer-readable medium of claim 73, whereinthe computer program instructions are configured to cause transmissionof a rectangular sonar beam, wherein the transducer assembly is a memberof a transducer array and the transducer assembly is configured to bepositioned on the watercraft to operate as a side scan sonar transducerassembly.
 75. The computer-readable medium of claim 73, wherein thecomputer program instructions are configured to render the sonar imageas one of a plurality of selectable layers over the geographic map. 76.The computer program product of claim 73, wherein the computer programinstructions are configured to spread the range cell data on the outsideof a turn when the watercraft turns.
 77. The computer-readable medium ofclaim 75, wherein the plurality of selectable layers includes a weatherlayer, a radar layer, or a depth sounding layer.
 78. Thecomputer-readable medium of claim 73, wherein the computer programinstructions are configured to render the sonar image as asemi-transparent layer over the geographic map.
 79. Thecomputer-readable medium of claim 73, wherein the computer programinstructions are configured to cause repeated transmission of the sonarbeam at a scan rate to generate, and upon generation transmit to theprocessing circuitry, incremental sets of raw sonar data including agiven incremental set of the raw sonar data; wherein the computerprogram instructions are further configured to, in response to receivingthe given incremental set of raw sonar data, process the incremental setof raw sonar data to generate a sonar column of range cell data, andgenerate a given incremental set of sonar image data based on the sonarcolumn of range cell data; and wherein the computer program instructionsare further configured to, in response to the generation of the givenincremental set of sonar image data, render the sonar image based on thegiven incremental set of sonar image data.
 80. The computer-readablemedium of claim 79, wherein the computer program instructions arefurther configured to scale the sonar column of range cell data based ona zoom level of the geographic map.
 81. The computer-readable medium ofclaim 79, wherein the computer program instructions are furtherconfigured to orient the sonar column of range cell data relative to acoordinate system of the geographic map.
 82. The computer-readablemedium of claim 79, wherein the computer program instructions areconfigured to render the sonar image at the position on the geographicmap that is associated with an area that the transducer assemblycaptured the return echoes of the sonar beam.
 83. The computer-readablemedium of claim 79, wherein the computer program instructions areconfigured to determine the positioning data of the watercraft as GPScoordinates; and wherein the computer program instructions areconfigured to plot and rotate the range cell data using the GPScoordinates.
 84. The computer-readable medium of claim 79, wherein thecomputer program instructions are further configured to: generate arespective sonar column of range cell data for each incremental set ofraw sonar data; and render the sonar image based on the sonar columns ofrange cell data.
 85. The computer-readable medium of claim 79, whereinthe computer program instructions are further configured to discontinuerendering an oldest sonar image upon rendering the sonar image.
 86. Thecomputer-readable medium of claim 79, wherein the computer programinstructions are further configured to rotate the sonar column of rangecell data based on the direction of movement of the watercraft such thatthe sonar image is rotated to extend in a direction that issubstantially perpendicular to the direction of movement of thewatercraft, wherein the transducer assembly is configured to bepositioned on the watercraft to operate as a side scan sonar transducerassembly.
 87. The computer-readable medium of claim 79, wherein thecomputer program instructions are further configured to determine ahorizontal extent of the sonar column of range cell data, and whereinthe computer program instructions configured to render the sonar imageby rendering a visual indicator of a position indicating the horizontalextent of the sonar column of range cell data.
 88. The computer-readablemedium of claim 87, wherein the computer program instructions areconfigured to render the visual indicator without also presentinginformation representative of the echo returns.
 89. Thecomputer-readable medium of claim 87, wherein the computer programinstructions are further configured to store the sonar column of rangecell data in a data storage device.
 90. The computer-readable medium ofclaim 87, wherein the computer program instructions are furtherconfigured to determine a horizontal extent of the sonar column of rangecell data based on the positioning data.
 91. The computer-readablemedium of claim 73, wherein the computer program instructions arefurther configured to: analyze the range cell data to identify a watercolumn portion of the range cell data, wherein the water column portionof the range cell data is a portion of the range cell data describingthe echo returns from a volume extending from the transducer assembly tothe seafloor based on an angle of the sonar beam; and remove the rangecell data in the water column portion.
 92. The computer-readable mediumof claim 91, wherein the computer program instructions are configured toidentify the water column portion of the range cell data based on aquantity of echo returns in a given area exceeding a relative threshold.93. The computer-readable medium of claim 91, wherein the computerprogram instructions are further configured to determine seafloor depthdata, and wherein the computer program instructions configured toidentify the water column portion of the range cell data based on theseafloor depth data.
 94. The computer-readable medium of claim 73,wherein the computer program instructions are further configured toanalyze the range cell data to identify a water column portion of therange cell data and a seafloor surface portion of the range cell data,wherein the water column portion of the range cell data is a portion ofthe range cell data describing the echo returns from a volume extendingfrom the transducer assembly to the seafloor based on an angle of thesonar beam, and wherein the seafloor surface portion is a portion of therange cell data describing the echo returns that interact with theseafloor; and wherein the computer program instructions are furtherconfigured to remove the range cell data in the water column portion andexpand the range cell data of the seafloor surface portion to maintain awidth of the range cell data despite the omission of the water columnportion.
 95. The computer-readable medium of claim 73, wherein thecomputer program instructions are further configured to store the rangecell data as a sonar log file in a data storage device.
 96. Thecomputer-readable medium of claim 95, wherein the computer programinstructions are configured to plot and rotate the range cell data inthe sonar log file.
 97. The computer-readable medium of claim 96,wherein the computer program instructions are configured to convert theadjusted range cell data by: determining a geographic area covered bythe adjusted range cell data; applying, based on the geographic area, afirst grid system to the adjusted range cell data to group the adjustedrange cell data into one or more tiles; and separately storing thegroups of adjusted range cell data within respective tiles of the one ormore tiles.
 98. The computer-readable medium of claim 97, wherein thecomputer program instructions are configured to separately store thegroups of adjusted range cell data within the respective tiles at afirst resolution within the respective tiles as one resolution layer ofa data structure comprising a plurality of resolution layers.
 99. Thecomputer-readable medium of claim 97, wherein the computer programinstructions are further configured to apply a second grid system to theadjusted range cell data at a second resolution.
 100. Thecomputer-readable medium of claim 99, wherein the computer programinstructions are further configured to generate a node tree indicativeof an architecture of the resolution layers and tiles of the datastructure.
 101. The computer-readable medium of claim 98, wherein thesonar image data is the derived from range cell data of a tileassociated with one of the plurality of resolution layers of the datastructure.
 102. The computer-readable medium of claim 98, wherein thecomputer program instructions are further configured to select one ofthe plurality of resolution layers based on a resolution of thepresentation of the geographic map.
 103. The computer-readable medium ofclaim 98, wherein the computer program instructions are furtherconfigured to select one of the plurality of resolution layers based ona resolution of the presentation of the geographic map and a node treeindicative of an architecture of the resolution layers and tiles of thedata structure.
 104. The computer-readable medium of claim 98, whereinthe computer program instructions are further configured to: scale andorient the range cell data of a given tile based on an orientation andzoom level of the presentation of the geographic map; and color therange cell data of the given tile by applying a color palette to therange cell data of the given tile; and wherein the sonar image data isderived from the range cell data of the given tile that has beenoriented, scaled, and colored.
 105. The computer-readable medium ofclaim 104, wherein the computer program instructions are configured tocolor the range cell data of the given tile to impart informationindicating a density of echo returns at a location of the range celldata of the given tile.
 106. The computer-readable medium of claim 97,wherein the computer program instructions configured to define each tilebased on characteristics including a tile center point, and a tilewidth.
 107. The computer-readable medium of claim 73, wherein thecomputer program instructions are further configured to: associatereceived depth sounding data with a location based on the positioningdata; and render indications of the depth sounding data with the sonarimage.
 108. The computer program product of claim 79, the computerprogram instructions configured to dynamically adjust the scan ratebased on a speed of the watercraft such that the transducer assembly isconfigured to repeatedly emit the sonar beam at a first scan rate whenthe watercraft is traveling at a first speed and a second scan rate whenthe watercraft is traveling at a second speed, wherein the first scanrate is greater than the second scan rate and the first speed is greaterthan the second speed.